package cn.jolyoulu.common.core.utils.encryption;

import lombok.extern.slf4j.Slf4j;

import java.util.Base64;

/**
 * @Author: JolyouLu
 * @Date: 2023/1/21 15:02
 * @Description Base64工具类
 */
@Slf4j
public class Base64Utils {

    /**
     * Base64 编码
     *
     * @param input 输入
     * @return String
     */
    public static String encode(byte[] input) {
        return new String(Base64.getEncoder().encode(input));
    }

    /**
     * Base64 解码
     *
     * @param input 输入
     * @return byte[]
     */
    public static byte[] decode(byte[] input) {
        return Base64.getDecoder().decode(input);
    }

    /**
     * Base64 编码 URL安全的
     * 将 "+" =转为=> "-"
     * 将 "/" =转为=> "_"
     * "="未处理
     *
     * @param input 输入
     * @return String
     */
    public static String urlEncode(byte[] input) {
        return new String(Base64.getUrlEncoder().encode(input));
    }

    /**
     * Base64 解密 URL安全的
     *
     * @param input 输入
     * @return byte[]
     */
    public static byte[] urlDecode(byte[] input) {
        return Base64.getUrlDecoder().decode(input);
    }

}
